package protect.notfinish;

import java.util.LinkedList;

/**
 * @author thinkpad - 83start
 * @version v1.0
 * @create 2022/10/1 12:52
 * @package protect.week05
 * @description 206. 反转链表
 * 给你单链表的头节点 head ，请你反转链表，并返回反转后的链表。
 * <p>
 * Definition for singly-linked list.
 * public class ListNode {
 * int val;
 * ListNode next;
 * ListNode() {}
 * ListNode(int val) { this.val = val; }
 * ListNode(int val, ListNode next) { this.val = val; this.next = next; }
 * }
 */

public class Ch03_ReverseList {
    public ListNode reverseList(ListNode head) {
        LinkedList<ListNode> listNodes = new LinkedList<>();
        while (head.next != null){
            listNodes.add(0,head);
            head = head.next;
        }

        return listNodes.get(0);
    }

    public class ListNode {
        int val;
        ListNode next;

        ListNode() {
        }

        ListNode(int val) {
            this.val = val;
        }

        ListNode(int val, ListNode next) {
            this.val = val;
            this.next = next;
        }
    }
}
